{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "c6bccbaa",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "a5338f32",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0 0 0 1\n"
     ]
    }
   ],
   "source": [
    "def AND(x1,x2):\n",
    "    x = np.array([x1,x2])\n",
    "    w = np.array([0.5,0.5])\n",
    "    b = -0.7\n",
    "    y = np.sum(w*x)+b\n",
    "    if y <= 0:\n",
    "        return 0\n",
    "    elif y > 0:\n",
    "        return 1\n",
    "print(AND(0,0),AND(0,1),AND(1,0),AND(1,1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "a6fc053b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0 1 1 1\n"
     ]
    }
   ],
   "source": [
    "def OR(x1,x2):\n",
    "    x = np.array([x1,x2])\n",
    "    w = np.array([0.5,0.5])\n",
    "    b = -0.2\n",
    "    y = np.sum(w*x)+b\n",
    "    if y <= 0:\n",
    "        return 0\n",
    "    elif y > 0:\n",
    "        return 1\n",
    "print(OR(0,0),OR(0,1),OR(1,0),OR(1,1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "34f5ee89",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "1 1 1 0\n"
     ]
    }
   ],
   "source": [
    "def NAND(x1,x2):\n",
    "    x = np.array([x1,x2])\n",
    "    w = np.array([-0.5,-0.5])\n",
    "    b = 0.7\n",
    "    y = np.sum(w*x)+b\n",
    "    if y <= 0:\n",
    "        return 0\n",
    "    elif y > 0:\n",
    "        return 1\n",
    "print(NAND(0,0),NAND(0,1),NAND(1,0),NAND(1,1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "c435b9d7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0 1 1 0\n"
     ]
    }
   ],
   "source": [
    "def XOR(x1,x2):\n",
    "    s1 = NAND(x1,x2)\n",
    "    s2 = OR(x1,x2)\n",
    "    y = AND(s1,s2)\n",
    "    if y <= 0:\n",
    "        return 0\n",
    "    elif y > 0:\n",
    "        return 1\n",
    "print(XOR(0,0),XOR(0,1),XOR(1,0),XOR(1,1))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "050893f7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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2lqVlJTo3Xffdbska7z99tvauHGj7r//frdLmfEGBgYUi8UUCARStgcCAfX19blUlfc5jqP6+npddNFFKi4udrscT/r1r3+t119/Xa+99prbpRiPlRED3XPPPfL5fIf92Lt3rzZu3KhIJKKGhga3S56xpvpaH6qnp0ff+ta39J3vfEc1NTUuVe49Pp8v5XPHccZtw9Fzyy236I9//KOefPJJt0vxpO7ubt122216/PHHlZ2d7XY5xqNnxEADAwMaGBg47D6nn366vvvd7+p3v/tdyht2LBZTZmamvve97+mXv/zlsS51xpvqa514M+np6dGyZcu0dOlSbdu2TRkZ5PkjNTo6qhNPPFFPPfWUrr766uT22267TV1dXdq5c6eL1XnTrbfequeff167du1SYWGh2+V40vPPP6+rr75amZmZyW2xWEw+n08ZGRkaGRlJ+TfbEUZmsHA4rEgkkvy8p6dHl19+uZ5++mktXbpUixYtcrE67/nggw+0bNkyBYNBPf7447yRHEVLly5VMBhUc3NzcttXvvIVffvb36aB9ShyHEe33nqrnnvuOf3hD3/QWWed5XZJnjU8PKz33nsvZduNN96oL3/5y/rxj3/MpbHPoGdkBlu8eHHK5yeffLIk6cwzzySIHGU9PT26+OKLtXjxYt1333366KOPkv+2YMECFyvzhvr6el1//fUqKSlRaWmpNm/erHA4rNraWrdL85SVK1fqiSee0G9+8xvNmTMn2ZOTm5ur2bNnu1ydt8yZM2dc4DjppJM0d+5cgsgECCPAFOzYsUNvvfWW3nrrrXFBj8XFI1dZWanBwUGtX79evb29Ki4uVltbmwoKCtwuzVMSt05ffPHFKdsfffRRrVix4vgXBBzEZRoAAOAquu8AAICrCCMAAMBVhBEAAOAqwggAAHAVYQQAALiKMAIAAFxFGAEAAK4ijAAAAFcRRgAAgKsIIwAAwFWEEQAA4CrCCAAAcNX/B8Cmfri/kqJcAAAAAElFTkSuQmCC",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#阶跃函数\n",
    "import matplotlib.pylab as plt\n",
    "def step_function(x):\n",
    "    return np.array(x>0,dtype = np.int32)\n",
    "x = np.arange(-5.0,5.0,0.1)\n",
    "y = step_function(x)\n",
    "plt.plot(x,y)\n",
    "plt.ylim(-0.1,1.1) #指定y轴的范围\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "47801e22",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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7+qSSy5p2n7bbbdp7dq1WrJkiYnpvNOtt96qRYsWaenSpUpJSTE7jldatGiRLrnkEvn7+zdtc7lcslgs8vPzU11dXbOv+TrKiAfLz8+Xw+Fo+rywsFDnnHOO3nvvPWVmZqpv374mpvM+Bw4c0Omnn6709HS98cYbvJB0oMzMTKWnp2vevHlN24YNG6aLL76YAawdyDAM3Xrrrfrwww/19ddfa9CgQWZH8loVFRXat29fs23XXXedhg4dqt///vdcGvsJxox4sKSkpGafh4eHS5IGDBhAEelghYWFOu2005SUlKQnnnhChw4davpa7969TUzmHWbNmqWrr75aGRkZGjdunF544QXl5+dr+vTpZkfzKjfffLPefPNNffTRR4qIiGgak2Oz2RQSEmJyOu8SERFxVOEICwtTdHQ0RaQFlBGgFb788kvt3LlTO3fuPKrocXLxl5syZYrKyso0Z84cFRUVKS0tTYsXL1ZycrLZ0bzKj7dOn3baac22v/LKK7r22mu7PhDwAy7TAAAAUzH6DgAAmIoyAgAATEUZAQAApqKMAAAAU1FGAACAqSgjAADAVJQRAABgKsoIAAAwFWUEAACYijICAABMRRkBAACmoowAAABT/X+g0EHar+Hv5QAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def sigmoid(x):\n",
    "    return 1 / (1 + np.exp(-x))\n",
    "x = np.arange(-5.0,5.0,0.1)\n",
    "y = sigmoid(x)\n",
    "plt.plot(x,y)\n",
    "plt.ylim(-0.1,1.1) #指定y轴的范围\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "e0de15f9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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yMhI03P8As+x8LKKigpVVFR863V69uyp733ve1q2bNk534CdTqdCQ0N1++2364UXXvD2VL93qbf1l98cSktLNWLECA0ZMkTPP/+8QkLo7NZobGxUdHS0XnvtNeXm5p69fOrUqdqyZYtWr15tcF3guu+++7R48WKtWbNGaWlppucEnMWLFys3N1ehoaFnL3M6nbLZbAoJCZHD4Tjnz0BY+IzDhw+rurr67PulpaW66aab9Pe//11DhgxRt27dDK4LPEePHtWIESM0aNAgvfjii3xj8JAhQ4Zo0KBBWrBgwdnL+vfvr4kTJ/LkTQ+zLEv33XefCgsLtWrVKvXp08f0pIBUU1OjQ4cOnXPZ3XffrYyMDD344IM89HQePMfCR3Tv3v2c99u1aydJSk9PJyo8rLS0VMOHD1f37t3129/+VidOnDj7ZykpKQaX+b9p06bpjjvu0ODBgzV06FA988wzOnz4sO69917T0wLOlClT9NJLL2nJkiWKjY09+zyW+Ph4RUVFGV4XOGJjY78RDzExMUpKSiIqLoCwQNB55513tHfvXu3du/cb0cYdeK1z22236eTJk5ozZ46OHTum7OxsLV++XD169DA9LeB8+ZLe4cOHn3P5c889p7vuuqvtBwFf4KEQAADgMTxbDQAAeAxhAQAAPIawAAAAHkNYAAAAjyEsAACAxxAWAADAYwgLAADgMYQFAADwGMICAAB4DGEBAAA8hrAAAAAe8/8BVFMjjxWtgKgAAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#Rectified Linear Unit,修正线性单元\n",
    "#hx:x,x>0\n",
    "#   0,x<=0\n",
    "def relu(x):\n",
    "    return np.maximum(0,x)\n",
    "x = np.arange(-5.0,5.0,0.1)\n",
    "y = relu(x)\n",
    "plt.plot(x,y)\n",
    "plt.ylim(-0.1,5.0) #指定y轴的范围\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "9929fab6",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "A的维数: 1\n",
      "A的形状: (4,)\n",
      "A的第一维元素个数: 4\n",
      "B的维数: 2\n",
      "B的形状: (4, 3)\n",
      "B的第2维元素个数: 3\n",
      "C的维数: 3\n",
      "C的形状: (4, 3, 1)\n",
      "C的第2维元素个数: 3\n"
     ]
    }
   ],
   "source": [
    "A = np.array([1,2,3,4])\n",
    "print('A的维数:',np.ndim(A))\n",
    "print('A的形状:',A.shape)\n",
    "print('A的第一维元素个数:',A.shape[0])\n",
    "\n",
    "B = np.array([[1,2,3],[4,5,6],[7,8,9],[10,0,0]])\n",
    "print('B的维数:',np.ndim(B))\n",
    "print('B的形状:',B.shape)\n",
    "print('B的第2维元素个数:',B.shape[1])\n",
    "\n",
    "C = np.array([[[1],[2],[3]],[[4],[5],[6]],[[7],[8],[9]],[[10],[0],[0]]])\n",
    "print('C的维数:',np.ndim(C))\n",
    "print('C的形状:',C.shape)\n",
    "print('C的第2维元素个数:',C.shape[1])"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
